package com.hx.setting.dao;

import com.hx.setting.dao.BaseDao;
import com.hx.setting.entity.Entity;
import com.hx.setting.model.*;
import java.io.Serializable;
import java.util.List;

/**
 * 虚拟删除接口类
 * Generate Date : 2014-03-16
 * Generate Version : v3.0
 * Generate Name : Honey v3.1 Test
 * Generate User : THINK
 * JDK Version : 1.5
 */
@SuppressWarnings("unchecked")
public interface VirtualDeleteDao<E extends Entity, PK extends Serializable> extends BaseDao<E, PK>
{

	/** 
	 * 按照主键虚拟删除数据,改变状态字段类型.被虚拟删除后的数据不能做任何操作(模拟物理删除),除了查询操作外.
	 * @param pk 主键
	 * @return 返回影响的记录集数量
	 */
	public int virtualDeleteByPrimaryKey(PK pk);

	/** 
	 * 按照动态条件虚拟删除数据,改变状态字段类型.被虚拟删除后的数据不能做任何操作(模拟物理删除),除了查询操作外.
	 * @param search 动态条件
	 * @return 返回影响的记录集数量
	 */
	public int virtualDeleteByDynamic(Condition<? extends GeneratedCriteria> search);

	/** 
	 * 查询虚拟删除的记录,只有本方法可以查询被虚拟删除的记录
	 * @return 返回查询结果
	 */
	public List<E> selectVirtualDelete();

	/** 
	 * 查询虚拟删除的记录,只有本方法可以查询被虚拟删除的记录
	 * @param page 分页查询
	 * @return 返回查询结果
	 */
	public List<E> selectVirtualDelete(Page page);
}
/* Honey v3.1 Test - version:1 - OriginalChecksum:B5199f20d7669965e30ecc832bc4d789a (do not edit this line) */
